(function () { 'use strict'; function createScriptElement(path) { let scriptElement = document.createElement("script"); scriptElement.type = "text/javascript"; scriptElement.src = path; return scriptElement; } /** * @param {string} baseUrl * @param {string[]} scripts */ function init(baseUrl, scripts) { if (Shopify.Checkout && (Shopify.Checkout.isOrderStatusPage || Shopify.Checkout.page === 'thank_you' || Shopify.Checkout.page === 'checkout_one_thank_you') && Shopify.checkout && Shopify.checkout.order_id ) { let counter = 0; for (let i in scripts) { let scriptElement = createScriptElement(scripts[i]); scriptElement.onload = function () { counter++; if(counter === scripts.length){ injectBox(baseUrl); } }; document.body.append(scriptElement); } } } /** * Enables input mask. This mask disables input fields, buttons, checkboxes etc. * Mask has z-index of 100, therefore an element that has to be excluded from input mask * has to have z-index greater than 100; */ function enableInputMask() { document.getElementById('pl-input-mask').classList.add('enabled'); } /** * Disables input mask. */ function disableInputMask() { document.getElementById('pl-input-mask').classList.remove('enabled'); } function injectBox(baseUrl) { let contentBox = document.querySelector('.step .section__content .content-box'), packlinkBox = document.createElement('div'), url = baseUrl + (baseUrl.indexOf('?') > 0 ? '&' : '?') + 'shop=' + Shopify.shop + '&order=' + Shopify.checkout.order_id + '&locale=' + Shopify.checkout.customer_locale; packlinkBox.classList.add('content-box'); Packlink.ajaxService.get( url, function (response) { /** @var {{page: string, script: string, selectedId: string}} response */ if (response && response.page) { packlinkBox.innerHTML = response.page; let src = document.createElement('script'); src.innerHTML = response.script.replace('', ''); contentBox.parentNode.insertBefore(packlinkBox, contentBox.nextSibling); contentBox.parentNode.insertBefore(src, contentBox.nextSibling); let shouldDisplayDropOff = document.getElementById('pl-display-drop-off').value; if (shouldDisplayDropOff) { let plMask = document.createElement('div'); plMask.id = 'pl-input-mask'; plMask.classList.add('pl-input-mask'); plMask.classList.add('custom'); document.body.insertBefore(plMask, document.body.firstChild); let closePlMask = document.createElement('div'); closePlMask.id = 'pl-close-mask'; closePlMask.classList.add('pl-close-mask'); closePlMask.classList.add('hidden'); closePlMask.addEventListener('click', function () { disableInputMask(); closePlMask.classList.add('hidden'); }); document.body.insertBefore(closePlMask, document.body.firstChild); let selectDropOff = document.getElementById('pl-drop-off-button'); selectDropOff.addEventListener('click', function () { disableInputMask(); closePlMask.classList.add('hidden'); }); let closeMaskContent = document.createElement('span'); closeMaskContent.id = 'pl-close-mask-content'; closeMaskContent.classList.add('pl-close-mask-content'); closeMaskContent.innerHTML = '\n' + '\n' + ''; closePlMask.appendChild(closeMaskContent); if (!response.selectedId) { enableInputMask(); closePlMask.classList.remove('hidden'); } } } } ); } init( "https://packlink-spf-pro.appspot.com/platform/PRO/checkout/thankYou", [ "https://packlink-spf-pro.appspot.com/PRO/admin/js/thankYou.js?v=3.2.9" ] ); })();